JFR中包含了一个GUI构建工具,用以修改/扩展JFR界面,或添加新功能。在该功能的帮助下,JRockit Mission Control团队得以加快开发进度,将更多的事件用于开发功能和修复Bug。
当前的GUI构建工具有JRockit Mission Control团队设计,就Oracle内部使用来说,已经是"足够了"。因此,在R28/4.0版本中并不支持该构建工具。我不忽悠人。若要使用,风险自负。将来某个版本可能会对GUI构建工具提供支持,但具体日期还未确定。
尽管并不支持GUI构建工具,在修改用户界面的时候,它还是很有用的。此外,还可以将之用于为自定义事件生产者添加自定义标签页。该工具最棒的地方就是,可以再用户界面直接将定制内容导出,以便在同事之间共享,只需要将插件包放到JROCKIT_HOME/missioncontrol/plug-in
目录下即可。
弱项访问GUI构建工具,必须在启动JRockit的时候添加-designer
参数:JROCKIT_HOME\bin\jrmc –designer
。
the JVM Browser view and the Event Types view by default.
这样,将在 Window | Show View菜单下启用Designer View
视图,默认情况下,该视图与 JVM Browser和 Event Types在同一个视图文件夹下。
打开某个记录后,可以再 Designer View中切换 设计模式和 运行模式。
处于运行模式时,可执行的操作只有终止记录并切换到设计模式。单击红色的终止按钮即可。
当处于设计模式时,可以修改JFR中用户界面的任意部分,甚至是JFR自身的标签页。这个功能相当强大,当然,使用不当的话可能会搞乱JFR。幸运的是,用户界面中有重置按钮可以将用户界面恢复至出厂设置。该重置按钮位于 Window | Preferences菜单下。
"通过GUI来恢复至出厂设置"这个功能之存在于JRockit Mission Control 4.0.1及其后的版本中。在4.0.0版本中,可以通过清空
<user.home>/.jrmc
文件下的内容来实现,但不幸的是,这个方法还会其他的自定义设置一并清空。
在修改完成后,点击 Play按钮来查看运行起来后的实际样子。若想添加新的标签页和标签页组,必须要先关闭记录,因为这会修改标签页的存储结构。
若想添加一个标签组,右键单击根节点,在上下文菜单中选择 New | New Group。
Properties Tab Group对话框中的 Placement Path属性用于指定标签组会出现在工具栏的什么位置。另外,还需要为插件选择两个图标文件。
选择标签组后,右键单击该标签组,选择 New | New Tab菜单来创建新标签页。
若要调整新创建的标签也,首选载入包含目标事件类型的记录。作为示例,在下面的内容中,会创建一个新的标签页来检测JVM中已分配的内存总量。
首先,进入标签页设计模式。目前还是空白的,因此在左上角会显示 Unknown Component。
现在来关注一下标签页的布局。在顶端设置一个范围选择器,在其下方添加一个展示图。
使用下面的方法可以添加一个范围选择器:
Next, we want to add a chart to the large remaining area below the range selector. Right click on this area and select Assign Component | Graphics | Chart from the context menu. This brings up the chart configuration dialog box. To add a total allocation attribute to the chart, do the following:
接下来,在范围选择器的下方添加一个展示图。右键单击该区域,选择 Assign Component | Graphics | Chart菜单,打开展示图配置对话框,在其中添加相关属性:
大功告成。当然,还可以通过其他选项是展示图看起来更好一些。在下面的截图中,坐标轴的内容类型被修改为 Memory,此外,还可以修改数据线的颜色,或为坐标轴取个名字。
在自定义标签页中创建范围选择器会稍微复杂一点。首先在上下文菜单中选择 Assign Component | Other | Range Selector,打开属性编辑对话框。
在新打开的对话框中,可以对范围选择器的相关属性进行配置。由于范围选择器中包含了展示图,因此在配置上与标准的展示图类似。如果希望自定义的范围选择器与其他范围选择器类似,则必须为每个坐标轴取消勾选 Show Tick Marks复选框和 AxisVisible复选框。
接下来,为事件类型添加 duration属性,以便显示正在发生的事件数量。将 Style属性设置为 Integrating Point Density。在范围选择器中,事件属性分为两大类,以不同颜色显示,分别是在操作集中的,和不在操作集中的。因此需要为属性分别为在操作集和不在操作集中各设置一次。
下面就是设置后的样子:
当然,要想知道如何使用JFR中的其他组件,最简单的方法就是进入设计模式来查看其他组件在JFR中是如何使用的。
右键单击根节点,选择 Export UI | Plug-in菜单,打开 Selection Needed对话框。
正常情况下,只有那些修改了的,或新增的标签页会被选中。在这个示例中,只选择 Test标签页。点击 OK按钮后,打开 Export Plug-in对话框,其中的属性均已填写完毕。这里需要注意的是,小心增加版本号,防止被旧版本覆盖掉。
点击 OK按钮后,就可以将插件保存为一个jar文件了。
保存之后的插件包就可以以更新站点的形式共享给同事朋友了,当然,直接将插件包放到JROCKIT_HOME/missioncontrol
目录下也是可以的。